package com.edais.service.gift;


import com.edais.domain.User;
import com.edais.domain.gift.PointAccount;

import java.util.Date;

public interface PointAccountService {


    /**
     * 根据userId 查询出积分账户
     * @param userId        用户ID
     * @param mobile        手机号
     * @return
     */
    PointAccount findAccount(Long userId, String mobile);

    /**
     * 根据用户查询积分账户
     * @param user
     * @return
     */
    PointAccount findAccount(User user);

    /**
     * 根据userId创建积分账户
     *
     * @param logInfo
     * @param user          用户
     * @param nowDate  当前时间
     * @return               积分帐号
     */
    PointAccount createAccount(final String logInfo, User user, Date nowDate);

    /**
     * 为账户增加积分
     * @param account     账户
     * @param amount        金额
     * @param nowDate       当前时间
     */
    void addPointAmount(PointAccount account,Integer amount,Date nowDate);

    /**
     * 积分升级操作---添加消息 自动签到
     * @param user							用户
     * @param originalAmount		原账户积分
     * @param addAmount				新增积分
     */
    void pointUpgradeOpt(String logInfo, User user, Integer originalAmount, Integer addAmount);
}
